package com.obligatorio.ejb;

import java.util.List;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import com.obligatorio.domain.Estados;
import com.obligatorio.domain.EstadosMail;
import com.obligatorio.domain.Mensaje;
import com.obligatorio.domain.Usuario;
import com.obligatorio.persist.dao.MensajeDAOLocal;
@Stateless
public class ManejadorMensajeBean implements ManejadorMensaje {
	@EJB
	private MensajeDAOLocal mensajeDAO;

	@Override
	public Boolean enviarMensaje(Mensaje message) throws Exception {
		message.setEstado(EstadosMail.Entrada);
		message.setEstadoLeido(EstadosMail.Marcar_Como_NoLeido);
		return mensajeDAO.enviarMensaje(message);
	}
	
	@Override
	public Boolean enviarInvitacion(Mensaje message) throws Exception {
		message.setEstado(EstadosMail.Invitacion);
		message.setEstadoLeido(EstadosMail.Marcar_Como_NoLeido);
		return mensajeDAO.enviarMensaje(message);
	}

	@Override
	public Boolean archivarMensaje(Mensaje message) throws Exception {
		message.setEstado(EstadosMail.Archivar);
		return mensajeDAO.archivarMensaje(message);
	}

	@Override
	public Boolean borrarMensaje(Mensaje message) throws Exception {
		message.setEstado(EstadosMail.Borrar_Permanentemente);
		return mensajeDAO.borrarMensaje(message);
	}

	@Override
	public List<Mensaje> listaMensajeEntrada(Usuario user) throws Exception {
		return mensajeDAO.listaMensajeEntrada(user);
	}

	@Override
	public List<Mensaje> listaMensajeEnviados(Usuario user) throws Exception {
		return mensajeDAO.listaMensajeEnviados(user);
	}
	
	@Override
	public List<Mensaje> listaMensajeInvitaciones(Usuario user) throws Exception {
		return mensajeDAO.listaMensajeInvitaciones(user);
	}

	@Override
	public List<Mensaje> listaMensajeArchivados(Usuario user)
			throws Exception {
		return mensajeDAO.listaMensajeArchivados(user);
	}

	@Override
	public List<Mensaje> listaMensajePapelera(Usuario user) throws Exception {
		return mensajeDAO.listaMensajePapelera(user);
	}

	@Override
	public void cabiarEstadoLeido(Mensaje message) throws Exception {
		message.setEstadoLeido(EstadosMail.Marcar_Como_Leido);
		mensajeDAO.cabiarEstadoLeido(message);
	}
	
	

}
